import pandas as pd

import shutil


def copy_files_by_group(group_val, id_col, src_dir, dst_dir, excel_file):
    """
    根据指定的excel表格、分组值、ID列名、源文件夹和目标文件夹, 
    将该分组值对应的ID列的值保存到一个list中, 
    并根据这个list去源文件夹中复制相应的文件到目标文件夹中。
    """
    # 读取excel表格
    df = pd.read_excel(excel_file)

    # 获取group列值为group_val对应的ID列的值保存到一个list中
    id_list = df[df['group'] == group_val][id_col].tolist()

    # 遍历id_list，复制相应的文件到目标文件夹中
    for id in id_list:
        src_file = f'{src_dir}/{id}.nii'  # 源文件夹中对应的文件路径
        dst_file = f'{dst_dir}/{id}.nii'  # 目标文件夹中保存的文件路径
        shutil.copy2(src_file, dst_file)  # 复制文件


# 测试函数
if __name__ == '__main__':
    excel_file = r"\\home\xchang\pytorch-CycleGAN-and-pix2pix-master\prep_data_4_yyq\patient.xlsx"
    src_dir = r"\\home\xchang\pytorch-CycleGAN-and-pix2pix-master\prep_data_4_yyq\T2WI"
    dst_dir = r"Data_folder\train\lesion"
    copy_files_by_group(group_val=1, id_col="ID", src_dir=src_dir, dst_dir=dst_dir, excel_file=excel_file)
